home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1995 April / Internet Tools.iso / applic / ntp / doc / dts2.txt.Z / dts2.txt
Encoding:
Text File  |  1991-09-29  |  55.5 KB  |  1,015 lines

  1. A Comparison of the Network Time Protocol and Digital Time Service
  2.  
  3. David L. Mills
  4. University of Delaware
  5. 12 February 1990
  6.  
  7. Review by Joe Comuzzi, DEC
  8. Further Commentary by Dave Mills, UDel
  9. 18 March 1990
  10.  
  11. Following is a review and commentary on the above document, which is
  12. available in the file pub/ntp/dts.txt on louie.udel.edu. This document
  13. is available in the file pub/ntp/dtsrev.txt on the same host. The
  14. original document is based on the DTS specification version T1.0.5 dated
  15. 18 December 1989, which I assume can be obtained from DEC.
  16.  
  17. At my suggestion Joe Comuzzi of DEC thoroughly and incisively reviewed
  18. my document comparing NTP and DTS. He found some agreement, some
  19. disagreement and some errors on my part. I much appreciate the
  20. time and care this effort required. In the same spirit, I have reviewed
  21. his comments and responded with comments of my own. As time permits I
  22. intend to incorporate appropriate revisions into the body of the original
  23. document and submit for wider distribution. Meanwhile, I offer the
  24. following discourse for further comment and evaluation. Personally, I
  25. have found the exchange useful, stimulating and suggestive of further
  26. refinements to NTP.
  27.  
  28. The following discourse includes only those portions of the original
  29. document that are relevant to the reviewer's comments. These are indented
  30. three spaces. The reviewer's comments are flush with the left margin.
  31. These comments are included in their entirety and are unedited. My reply
  32. comments are preceded by a ">" symbol. References to the latest
  33. specification are to RFC-1119, with exception of the mention of new
  34. appendices in the revised version of February 1990, which can be found in
  35. the PostScript file pub/ntp/ntp.ps on louie.udel.edu.
  36.  
  37. -------------------------------------------------------------------------
  38.  
  39.    The Digital Time Service (DTS) for the Digital Network Architecture
  40.    (DECnet) is intended to synchronize time in computer networks ranging in
  41.    size from local to wide-area.
  42.  
  43. You seem to be trying to clothe DTS in a propritary cloth. We now refer to
  44. DECnet as DECnet/OSI since we've incorporated OSI protocols into the 
  45. protocol stack. It is our intention to pursue DTS in the OSI standards
  46. forums.
  47.  
  48. > I have no intent to clothe DTS in anything other than explicitly stated
  49. > on the cover and introduction to the spec document. There is says "DNA
  50. > Phase 5 network." I will be glad to preach any other gospel or creed
  51. > practiced by DEC's men of cloth if you will change the cover and
  52. > introduction to the spec.
  53.  
  54.                                   As such it is intended to provide service
  55.    comparable to the Network Time Protocol (NTP) for the Internet
  56.    architecture.
  57.  
  58. While both are clearly addressing the same problem space, DTS and NTP
  59. have VERY different goals. I recently spoke to the president of a time
  60. provider manufacturer and I liked his jargon, he distinguished between the
  61. time-of-day market and the frequency market. The time-of-day market wants
  62. to know what time it is, it is not interested in small errors and it
  63. doesn't want to pay a lot. The frequency market wants stable frequency
  64. sources, needs high stability and is willing to pay.
  65.  
  66. > I didn't know the time providers distinguished between the time-of-day
  67. > market and frequency market. Certainly their customers don't know the
  68. > difference. No timecode receivers known to me have the requisite
  69. > stability to be considered primary frequency providers in any case;
  70. > that's what rubidium and cesium standards are for. I do not understand
  71. > the basis for your conclusion that accurate frequency costs more than
  72. > accurate time. While the algorithms are somewhat more complicated and the
  73. > host-clock implementation must be more rigidly specified, this does not
  74. > necessarily cost more, especially if there is almost a decade of research
  75. > in refining the methodology.
  76.  
  77. NTP is a solution for the frequency market. DTS is only interested in
  78. the time-of-day market. The major cost for these solutions is not
  79. the initial capital investment, but the long term management and operation
  80. cost. As such DTS has goals of auto-configurability and ease of management
  81. which are not present in NTP.
  82.  
  83. > If you are convinced that accurate, reliable time-of-day service can be
  84. > achieved without consideration for frequency and believe that errors as
  85. > much as several seconds per day in the absence of connectivity are
  86. > acceptable, then I won't argue with DTS being a reasonable approach. I
  87. > accept that NTP has goals primarily of stability, accuracy and
  88. > reliability and secondarily of configurability and ease of management,
  89. > since other Internet protocols would be expected to provide those
  90. > functions (see below).
  91.  
  92. > (portion deleted)
  93.  
  94.                             The goal of a distributed timekeeping
  95.    service such as NTP and DTS is to synchronize the clocks in all
  96.    participating servers and clients so that all are correct, indicate the
  97.    same time relative to UTC, and maintain specified measures of stability,
  98.    accuracy and reliability.
  99.  
  100. As stated above, DTS is addressing the time-of-day market hence high
  101. frequency stability is an not a goal of DTS.
  102.  
  103. > Do you mean that "specified measures of stability, accuracy and
  104. > reliability" do not apply to DTS? Should I specifically point out that
  105. > stability is a non-goal of DTS? A stability bound is in fact an
  106. > architectural constant "maxDrift" in DTS, which sounds like a
  107. > "specified measure" to me.
  108.     
  109. > (portion deleted)
  110.  
  111.    Servers, both primary and secondary, typically run NTP with several
  112.    other servers at the same or lower stratum levels; however, a selection
  113.    algorithm attempts to select the most accurate and reliable server or
  114.    set of servers from which to actually synchronize the local clock. The
  115.    selection algorithm, described in more detail later in this document,
  116.    uses a maximum-likelihood clustering algorithm to determine the best
  117.    from among a number of possible servers. The synchronization subnet
  118.    itself is automatically constructed from among the available paths using
  119.    the distributed Bellman-Ford routing algorithm [BER87], in which the
  120.    distance metric is modified hop count.
  121.  
  122. Note that in DTS loops are not a problem, if a system sends out a time
  123. an ultimately gets back a derived time, due to the communication delays
  124. the derived time will always arrive back with a larger inaccuracy.
  125. The only exception to this is the possibility of a system with a time
  126. provider and a lousy clock. Then the derived time's inaccuracy could be
  127. smaller if the time was parked in a system with a good clock. But in
  128. this case the network clearly has information that the original system
  129. has lost.
  130.  
  131. > It would seem that the strategy to avoid subnet loops is similar in both
  132. > NTP and DTS, although in NTP the metric is stratum (hop count) and in
  133. > DTS it is the inaccuracy interval (is there a better word than
  134. > "inaccuracy" with a more positive connotation?) Both NTP and DTS
  135. > appear to operate in similar ways to cast out noisy timecode receivers,
  136. > although it is not clear to me how the DTS manager determines from the
  137. > protocol and the radio what the inaccuracy interval should be. Both NTP
  138. > and DTS model the receiver similar to an ordinary peer, presumably with
  139. > smallest inaccuracy interval or lowest stratum. In principle, both could
  140. > estimate these and related information directly from the timecode
  141. > samples.
  142.     
  143. > (portion deleted)
  144.     
  145.    The NTP specification includes no architected procedures for servers to
  146.    obtain addresses of other servers other than by configuration files and
  147.    public bulletin boards.
  148.  
  149. This is a serious short-coming of NTP and definitely makes it harder to
  150. manage. It is unclear to me why you haven't fixed this since it would
  151. not seem that difficult to store server names in a namespace.
  152.  
  153. > There are three issues here: (1) how to discover a set of time-servers
  154. > which are potentially useful peers, (2) how to intelligently select
  155. > an appropriate subset, based on performance expectations and (3) how
  156. > to translate names to addresses. Internet protocols are notoriously
  157. > weak on (1) and (2); however, (3) is a non-issue with NTP, since all
  158. > NTP daemons use the Internet DNS to resolve addresses from names and in
  159. > principle could use the DNS to discover servers (WKS records). For (1)
  160. > now, there is a master file on an obscure host, which is updated
  161. > haphazardly at irregular intervals using completely unauthenticated
  162. > data obtained from unreliable sources. Issue (2) is Real Hard when
  163. > the number of potential peers runs in the thousands and considerations
  164. > of network overhead, access policy and export control (drat DES) are
  165. > involved.
  166.  
  167. > DTS uses LAN discovery protocols and automatic global server registration
  168. > in a global database, which vastly simplifies (1) and (3); however, I
  169. > submit that, as DTS gets bigger, (2) will become as hard in DTS as it
  170. > has in NTP. For instance, survey evidence suggests there are over 2000
  171. > hosts supporting NTP and potentially available as servers registered
  172. > in the DNS. Using the DTS model that flushes the server list every 12
  173. > hours and expects that every server and clerk maintains the entire
  174. > list, one might expect a good deal of network clanking, unless the list
  175. > were pruned and stratified as a cooperative management exercise.
  176.  
  177.                            While servers passively respond to requests from
  178.    other servers, they must be configured in order to actively probe other
  179.    servers. Servers configured as active poll other servers continuously,
  180.    while servers configured as passive poll only when polled by another
  181.    server. There are no provisions in the present protocol to dynamically
  182.    activate some servers should other servers fail.
  183.  
  184. This is harder to fix and interacts with the spanning tree. Here at least
  185. I can see why you didn't make it easier to manage.
  186.  
  187. These problems make NTP a system administrators nightmare, but are
  188. consistent with the two different sets of goals. Consistent with DTS goals
  189. we've accepted some "clock hopping" in exchange for ease of management.
  190.  
  191. > I'm not sure what you mean by "nightmare." Most NTP administrators
  192. > snarf a copy of one of the two Unix daemons, compile it locally,
  193. > make an uneducated guess which existing server(s) in the master list to
  194. > use based on advice included in the distribution, build a simple
  195. > configuration file, turn the keys and walk away. In fact, DEC is
  196. > presently distributing NTP with Ultrix and includes a five-page writeup
  197. > on how to do this; which, although not an engineered solution, would
  198. > not ordinarily be considered a nightmare.
  199.  
  200. > While you and I might consider NTP configuration crude, it is really no
  201. > better or worse than bringing up a j-random router or DNS server. In DTS
  202. > clients and servers wake up once in a while and solicit time in
  203. > connectionless mode on LANs and connection mode on WANs, while in NTP
  204. > peers solicit time continuously at controlled rates in connectionless
  205. > mode. On the issue of "dynamically activate," it appears that DTS does
  206. > just that with backup couriers in order to minimize WAN overhead.
  207. > This is a good thing and should be done in NTP. Dynamic activation is
  208. > on my list, but not above integration with the IP multicast service. 
  209.     
  210.    In response to stated needs for security features, NTP includes an
  211.    optional cryptographic authentication mechanism. NTP also includes an
  212.    optional comprehensive remote monitoring mechanism found necessary for
  213.    the detection and repair of various problems in server and network
  214.    configuration and operation. It is anticipated that, when generic
  215.    features capable of these functions have been developed and deployed in
  216.    the Internet, the NTP authentication and monitoring mechanisms may be
  217.    withdrawn.
  218.  
  219. > This might be called poor-boy network management; expedient and ugly,
  220. > but necessary. An SNMP interface is in progress for one of the Unix
  221. > daemons. Same goes for the authentication mechanism, which is a
  222. > necessary feature used to partition the subnet for repair when
  223. > a server comes unglued.
  224.     
  225. < (portion deleted)
  226.     
  227.    In DTS a synchronization subnet consists of a structured graph with
  228.    nodes consisting of clerks, servers, couriers and time providers. With
  229.    respect to the NTP nomenclature, a time provider is a primary server, a
  230.    courier is a secondary server intended to import time from one or more
  231.    distant primary servers for local redistribution and a server is
  232.    intended to provide time for possibly many end nodes or clerks. Time
  233.    providers, servers and couriers are evidently generic, in that all
  234.    perform similar functions and have similar or identical internal
  235.    structure.
  236.  
  237. Not only are they generic, they are dynamic. If a time provider system
  238. loses its radio signal, it immediately reverts to a server, providing
  239. graceful degradation in the presence of failures.
  240.  
  241. > Your enthusiasm is contagious. NTP does exactly the same thing.
  242.  
  243. The DTS story is actually even better here, we provide a well defined
  244. time provider interface. This can be used to implement a time provider
  245. without requiring modification of the protocol portions of the time
  246. service. (On Unix systems it uses Unix domain sockets). This greatly
  247. eases adding a new time provider, and permits time provider vendors to
  248. supply it with their hardware. Note, NTP could (and probably should) do
  249. this also. We have already done it.
  250.  
  251. > The NTP spec includes a procedure for time provider interface, although
  252. > the entity interactions are only informally specified. However, the NTP
  253. > interface is substantially the same as the peer interface, while in DTS
  254. > the interface is different. Perhaps the most interesting difference is
  255. > that the DTS provider interface expects a series of time values and
  256. > uses the DTS procedures to refine the estimate, which is similar in
  257. > intent to the NTP clock filter, but the NTP clock filter applies to
  258. > all peers in addition to the provider.
  259.  
  260. > As specified in the introduction, the NTP spec is not intended as a
  261. > formal one (in the best and worst Internet traditions). However, we
  262. > have a little project at UDel to rewrite it in Estelle and throw test
  263. > cases at it. The project has already found a small number of minor
  264. > sleazes and obscurisms. You are to be congratulated in your formal
  265. > approach using Modula2+. Have you subjected the protocol description
  266. > to formal verification and testing? Can you make your Unix daemon
  267. > available for testing? Would you agree to publish the spec document
  268. > as an RFC?
  269.     
  270.    As in NTP, DTS clients and servers periodically request the time from
  271.    other servers, although the subnet has only a limited ability to
  272.    reconfigure in the event of failure.
  273.  
  274. I don't understand this statement. Reconfiguration within a LAN is
  275. about as complete as one could imagine. The random selection of global
  276. servers is robust against any non-partitioning WAN failures.
  277.  
  278. > My statement was misleading and should be clarified. Assuming the
  279. > global directory service is robust, DTS certainly is robust against
  280. > non-partitioning WAN failures; however, there are only three levels
  281. > in the DTS subnet (global server, courier/server, client). In NTP there
  282. > can be several levels or strata (commonly up to five or more). My comment
  283. > was meant in the context of reforming the NTP subnet as a spanning
  284. > tree routed at the primary servers when something croaks. This of course
  285. > requires engineered peer paths and prior knowledge of WAN connectivity,
  286. > which is certainly not among the goals of DTS.
  287.  
  288. > (portion deleted)
  289.     
  290.    On local nets DTS servers multicast to each other in order to construct
  291.    lists of servers available on the local wire. Clerks multicast requests
  292.    for these lists, which are returned in monocast mode similar to ARP in
  293.    the Internet. Couriers consult the network directory system to find
  294.    global time providers. For local-net operation more than one server can
  295.    be configured to operate as a courier, but only one will actually
  296.    operate as a courier at a time.
  297.  
  298. This is false, I think you're failing to distinguish between couriers and
  299. backup couriers. There can be more than one courier per LAN, each will
  300. always synchronize with at least one member of the global set. Backup
  301. couriers use an election algorithm in the absence of a courier. Only one
  302. backup courier will be elected to function as a courier.
  303.  
  304. > Correction noted. Do you always expect to have multiple couriers (other
  305. > than the single elected backup) in order to insure diversity and
  306. > redundancy anyway? The local servers check each other for consistency
  307. > and those set as couriers read at least one, but not necessarily more
  308. > than one, global clock.
  309.  
  310.                                    There does not appear to be a multicast
  311.    function in which a personal workstation could obtain time simply by
  312.    listening on the local wire without first obtaining a list of local
  313.    servers.
  314.  
  315. That is correct, it would violate the principle that a message exchange
  316. has to happen in order to correctly assign an inaccuracy.
  317.  
  318. > There appears to be a considerable Internet constituency which has
  319. > noisily articulated the need for a multicast function when the number of
  320. > clients on the wire climbs to the hundreds. Having responded to the
  321. > articulation noise, I thought it might be a reasonable idea to include
  322. > this capability (so far untested) on LANs with casual workstations,
  323. > promiscuous servers and simple protocol stacks.
  324.  
  325. > (portion deleted)
  326.     
  327.    Perhaps the widest departure between the NTP and DTS philosophies is the
  328.    basic underlying statistical model. NTP is based on maximum-likelihood
  329.    principles and statistical mechanics, where errors are expressed in
  330.    terms of expectations. DTS is based on provable assertions about the
  331.    correctness of a set of mutually suspicious clocks, where errors are
  332.    expressed as a set of computable bounds on maximum time and frequency
  333.    offsets. This section explores these models and how they affect the
  334.    quality of service.
  335.  
  336. > You chose not to respond to the statistical models presented. Does that
  337. > mean you are in substantial agreement with the exposition?
  338.  
  339. > (portion deleted)
  340.  
  341.    Both NTP and DTS exist to provide timestamps to some specified accuracy
  342.    and precision. NTP represents time as a 64-bit quantity in seconds and
  343.    fractions, with 32 bits as integral seconds and 32 bits as the fraction
  344.    of a second. This provides resolution to about 200 picoseconds and
  345.    rollover ambiguity of about 136 years. The origin of the timescale and
  346.    its correspondence with UTC, atomic time and Julian days is documented
  347.    in [MIL90c]. DTS represents time to a precision of 100 nanoseconds,
  348.    although there appears to be no specified maximum value.
  349.  
  350. The DTS time is a signed 64 bits of 100 nanoseconds since Oct 15, 1582.
  351. It will not run out until after the year 30,000 AD. Unlike NTP which
  352. will run out in 2036. I, for one, intend to still be alive in 2036!
  353.  
  354. There are two reasons the 100 ns. was chosen:
  355.  1) We want to use these timestamps as a time representation, for
  356.     filesystem timestamps, etc. We REALLY don't want to deal with the
  357.     problem that our representation is inadequate in some reasonably
  358.     future time. Also, since the 64 bits is signed, times back to
  359.     28,000 BC can be represented. This is potentially useful for
  360.     astronomical data, and happily, includes all of recorded history.
  361.  
  362.     If we decreased the resolution, we would give up range. This choice
  363.     seemed like a reasonable compromise.
  364.  2) Since we include the the transmission delay in the inaccuracy, 100 ns
  365.     represents only 30 meters. Its not meaningful to talk about
  366.     synchronizing clocks below that level with our algorithm. (I believe
  367.     its not meaningful to talk about synchronizing clocks below that
  368.     level with NTP either).
  369.     
  370. The total timestamp is 128 bits, this includes a four bit version number
  371. field which would permit these decision to be revisited in the future.
  372.  
  373. > I won't argue with your choice of timestamp format. My choice was
  374. > conditioned both by pragmatic issues of compatibility with other Internet
  375. > timekeeping protocols, as well as a perceived need to operate at the
  376. > highest accuracies and precisions capable of national laboratories. As
  377. > for synchronizing clocks with NTP below the 100-ns level, a project to
  378. > do exactly that is in progress here to compare LORAN-C and cesium time.
  379. > Note that not all NTP subnets operate using general-purpose computing
  380. > systems. My own zeal in pursuing the ultimate accuracy and precision
  381. > is largely conditioned by our ongoing work in gigabit network routing
  382. > and network synchronization.
  383.  
  384. > In any case, the DTS timestamp format including inaccuracy and version
  385. > is a good idea. In principal, the inaccuracy is available in NTP in the
  386. > form of the synchronization distance and dispersion, but this is not
  387. > normally available at the Unix interface.
  388.  
  389. > (portion deleted)
  390.     
  391.    With respect to applications involving precision time data, such as
  392.    national standards laboratories, resolutions less than the 100
  393.    nanoseconds provided by DTS are required. Present timekeeping systems
  394.    for space science and navigation can maintain time to better than 30
  395.    nanoseconds, while range data over interplanetary distances can be
  396.    determined to less than a nanosecond. While an ordinary application
  397.    running on an ordinary computer could not reasonably be expected to
  398.    expect or render precise timestamps anywhere near the 200-picosecond
  399.    limit of an NTP timestamp, there are many applications where a precision
  400.    timestamp could be rendered by some other means and propagated via a
  401.    computer and network to some other place for processing. One such
  402.    application could well be synchronizing navigation systems like LORAN-C,
  403.    where the timestamps would be obtained directly from station timekeeping
  404.    equipment.
  405.  
  406. There is an obvious inconsistency in your position here. If you're just
  407. using the NTP time format for synchronization, then talking about 136 year
  408. rollovers makes some sense. It could be hidden from the users by extending
  409. the protocol. If, however, as this paragraph implies you intend the NTP
  410. time format as a general timestamp, then there will be extreme pain in the
  411. year 2036. (This is refered to in DEC as the "date75" problem!) To avoid
  412. this without unduly extending the timestamp DTS has traded off being able
  413. to use its timestamp format for certain highly precise applications.
  414.  
  415. > I have vivid memories of shout-out meetings in the early eighties
  416. > where we Interbums staked out positions on what you call the "date75"
  417. > problem. It seems that, no matter what resolution and rollover parameters
  418. > you select, somebody will complain the Big Bang or End of Time cannot
  419. > be represented to femtoseconds. For that matter, while my personal clock
  420. > may expire before 2036, even now I have great pain keeping track with
  421. > conventional date notation of investments that mature after the century
  422. > turns. In NTP I chose to explicitly and purposely leave out the 136-year
  423. > disambiguation function and relegate that to a higher protocol that
  424. > includes both this function and leap-second recording in network
  425. > institutional memory. Since the Earth is winding down in an unpredictable
  426. > way and papal bulls cannot endure forever and we haven't even got the
  427. > Julian days and Gregorian centuries consonant yet, I concluded that
  428. > life is too short and, like astronomers, we all should have used
  429. > (modified) Julian day-fraction reckoning in the first place.
  430.     
  431. > (portion deleted)
  432.     
  433.    NTP specifically and intentionally has no provisions anywhere in the
  434.    protocol to specify time zones or zone names. The service is designed to
  435.    deliver UTC seconds and Julian days without respect to geographic
  436.    position, political boundary or local custom. Conversion of NTP
  437.    timestamp data to system format is expected to occur at the presentation
  438.    layer; however, provisions are made to supply leap-second information to
  439.    the presentation layer so that network time in the vicinity of leap
  440.    seconds can be properly coordinated. DTS includes provision for time
  441.    zones and presumably summer/winter adjustments in the form of a
  442.    numerical time offset from UTC and arbitrary character-string label;
  443.    however, it is not obvious how to distribute and activate this
  444.    information in a coordinated manner.
  445.  
  446. The information is used only as a help in user displays. That is, an
  447. application can display BOTH the UTC time and the local time at which
  448. a timestamp was created. It only cost 12 bits to do this. No use is
  449. made of the timezone information by DTS or by systems.
  450.  
  451. > That clarifies the issue. Your intent is only to qualify the origin
  452. > of the timestamp. Point noted.
  453.     
  454.    NTP and DTS differ somewhat in the treatment of leap seconds. In DTS the
  455.    normal growth in error bounds in the absence of corrections will
  456.    eventually cause the bounds to include the new timescale and adjust
  457.    gradually as in normal operation. Recognizing that this can take a long
  458.    time, DTS includes special provisions that expand the error bounds at
  459.    such times that leap seconds are expected to occur, which can shorten
  460.    the period for convergence significantly. However, until the correction
  461.    is determined and during the convergence interval the accuracy of the
  462.    local clock with respect to other network clocks may be considerably
  463.    degraded.
  464.     
  465.    The accuracy and stability expectations of NTP preclude this approach.
  466.    In NTP the incidence of leap seconds is assumed available in advance at
  467.    all primary servers and distributed automatically throughout the
  468.    remainder of the synchronization subnet as part of normal protocol
  469.    operations. Thus, every server and client in the subnet is aware at the
  470.    instant the leap second is to take affect, and steps the local clock
  471.    simultaneously with all other servers in the subnet. Thus, the local
  472.    clock accuracy and stability are preserved before, during and after the
  473.    leap insertion.
  474.  
  475. Each server has to maintain and propagate this state before the leap
  476. insertion. This is, of course, subject to Byzantine failures. A failing
  477. server can insert a bad notification.
  478.  
  479. > Did I miss something? By "propagate this state" do you mean DTS will
  480. > propagate advance notice of leap seconds? From what I can find rummaging
  481. > over the text, it appears that entities are expected to add one second
  482. > to their inaccuracy intervals at the end of June and December, which
  483. > would certainly shorten the convergence period if a leap did in fact
  484. > occur; However, there will be an unpredictable interval following that
  485. > when the clocks are all scurrying to catch up and network time can
  486. > be inconsistent up to a second. I worry about Byzantine failures, too.
  487. > That's why all those NTP timestamp consistency tests and, ultimately,
  488. > the NTP authentication scheme. It would appear that DTS is vulnerable
  489. > to replay in the same way NTP is vulnerable without this scheme.
  490.    
  491. > (portion deleted)
  492.     
  493.    At first glance it may appear that NTP and DTS have quite different
  494.    models to determine delay, offset and error budgets. Both involve the
  495.    exchange of messages between two servers (or a client and a server).
  496.    Both attempt to measure not only the clock offsets, but the roundtrip
  497.    delay and, in addition, attempt to estimate the error. The diagrams
  498.    below, in which time flows downward, illustrate a typical NTP message
  499.    exchange in each protocol between servers A and B.
  500.     
  501.                  A          B                 A          B
  502.     
  503.                  |          |                 |          |
  504.               t1 |--------->| t2           t1 |--------->|--- t4
  505.                  |          |                 |          | |
  506.                  |          |                 |          |
  507.                  |          |                 |          | w
  508.                  |          |                 |          |
  509.                  |          |                 |          | |
  510.               t4 |<---------| t3           t8 |<---------|---
  511.                  |          |                 |          |
  512.     
  513.                       NTP                         DTS
  514.     
  515.    In NTP the roundtrip delay d and clock offset c of server B relative to
  516.    A is
  517.     
  518.                             d = (t4-t1) - (t3-t2)
  519.                           c = ((t2-t1) + (t3-t4))/2.
  520.     
  521.    This method amounts to a continuously sampled, returnable-time system,
  522.    which is used in some digital telephone networks [LIN80].
  523.  
  524. The derivation of the expression for 'c' above assumes the two transit
  525. delays for this exchange are symmetric. If there are systematically
  526. asymmetric transmission delays then the NTP algorithm will shift the two
  527. clocks so that they appear to be synchronized, when in fact they are
  528. systematically off by some number of milliseconds. The NTP minimum
  529. filter attempts to minimize this effect assuming that the shortest round
  530. trip exchange would have to be symmetric or nearly so. Unfortunately quite
  531. large systematic asymmetric delays can occur for a variety of reasons:
  532. source-routed networks, broken routing tables, etc. and these would apply
  533. to all transactions including the shortest. This problem exists in DTS
  534. also, but in DTS both of the systems will have an inaccuracy which
  535. encompasses the correct time. That is, DTS will not claim to have
  536. synchronized clocks to a level which it has not, even in the presence of
  537. asymmetric delays. NTP can and has.
  538.  
  539. > Your observation on asymmetric paths leading to undetectable systematic
  540. > errors with both NTP and DTS is correct and is routinely observed to
  541. > varying degrees on the Internet. In fact, leaving out adjustments
  542. > necessary for frequency offset and precision (in both NTP and DTS) the
  543. > above formulas can be rewritten as presented in the DTS spec. We have
  544. > a project here designed to collect offset data from many or even all
  545. > subnet servers at non-intrusive rates in order to detect and correct
  546. > for asymmetric paths using correlation techniques.
  547.  
  548. > I'm not sure what you mean by "NTP can and has" claimed to "have
  549. > synchronized clocks to a level which it has not, even in the presence
  550. > of asymmetric delays." NTP does not claim to synchronize to any level,
  551. > only to minimize the level of probabilistic uncertainty and estimate
  552. > the error incurred. In any case, what NTP calls the synchronizing
  553. > delay represents in fact the error bound relative to the synchronizing
  554. > path to the primary source. 
  555.  
  556. > These are probabilistic data and must be interpreted with respect to the
  557. > probability model which applies to real Internet paths. It may be that,
  558. > with an appropriate queueing model and assumed distribution functions,
  559. > a quantitative error probability function could be derived. Having
  560. > travelled those roads before myself, I conclude my pragmatic approach
  561. > to error estimation is probably as good as any. See [ALL74] for an
  562. > alternative approach.
  563.  
  564. > (portion deleted)
  565.     
  566.    Both NTP and DTS have to do a little dance in order to account for
  567.    timing errors due to the precisions of the local clocks and the
  568.    frequency offsets (usually minor) over the transaction interval itself.
  569.    A purist might argue that the expression given above for delay and
  570.    offset are not strictly accurate unless the probability density
  571.    functions for the path delays are known, properly convolved and
  572.    expectations computed, but this applies to both NTP and DTS. The point
  573.    should be made, however, that correct functioning of DTS requires
  574.    reliable bounds on measured roundtrip delay, as this enters into the
  575.    error budget used to construct intervals over which a clock can be
  576.    considered correct. 
  577.  
  578. However, this is not at all hard to compute. Simply increase the inaccuracy
  579. by the potential drift of the local clock during the transaction. The
  580. architecture specifies this.
  581.  
  582. > Not hard to do in NTP either, as the architecture specifies. The
  583. > difference is that in NTP this is represented as a time-insensitive
  584. > bound, since the architecture expects the local-clock algorithm to
  585. > compensate for frequency errors. The system expectation is that the
  586. > (corrected) local clock does not wander more than an architectural
  587. > constant of 30 ms per day. Even in NTP it might be a good idea
  588. > to ratchet up the imputed skew when all sources are lost and the
  589. > bandwidth of the tracking loop is relatively large. This will be
  590. > considered in future.
  591.  
  592. > (portion deleted)
  593.     
  594.    NTP maintains for each server both the total estimated roundtrip delay
  595.    to the root of the synchronization subnet (synchronizing distance), as
  596.    well as the sum of the total dispersion to the root of the
  597.    synchronization subnet (synchronizing dispersion).
  598.  
  599. This synchronizing distance has a rather loose definition. I believe the
  600. current NTP RFC suggests using ten times the mean expected error for
  601. the synchronizing distance. If this parameter is important to the NTP
  602. algorithm I would expect some stronger specification. Also, where does
  603. the value ten come from? I know its experimentally derived and seems to
  604. work...
  605.  
  606. > I must have confused you. Both the distances and dispersions are formally
  607. > defined in the spec. The factor of ten applies only in cases where the
  608. > delay and/or dispersion cannot be measured, such as with some timecode
  609. > receivers. Elsewhere throughout the subnet these quantities are
  610. > calculated. You will observe that the dispersion quantity is rather
  611. > artfully concocted (for efficiency reasons) and not directly convertible
  612. > to the usual second-moment statistics. Well, all I can say is that other
  613. > practitioners of these black arts mumble similar voodoo, but the
  614. > performance as error estimator is still pretty good. Now, I should make
  615. > clear that a goal of NTP is to maintain overall accuracy relative to
  616. > the synchronization distance (roundtrip delay) to the root of the subnet
  617. > on the order of one-tenth that distance. That is an arbitrary goal, but
  618. > believed achievable on the basis of past experience.
  619.  
  620. > There is an interesting feature which becomes evident reading the DTS
  621. > and NTP specification documents. The DTS  and NTP procedures for reading
  622. > server times, computing bounds and selecting sources are roughly the
  623. > same complexity, although NTP fiddles with both delay and dispersion.
  624. > In addition, the procedures DTS uses to adjust the local clock, compute
  625. > the correction interval and determine the next update time have roughly
  626. > the same complexity as the NTP local-clock procedure.
  627.  
  628.                                                       These quantities are
  629.    included in the message exchanges and form the basis of the likelihood
  630.    calculations. Since they always increase from the root, they can be used
  631.    to calculate accuracy and reliability estimates, as well as to manage
  632.    the subnet topology to reduce errors and resist destructive timing
  633.    loops.
  634.  
  635. While you state the synchronizing distance and synchronizing dispersion
  636. can be used to calculate accuracy, I have never seen a derivation of how
  637. this could be done. This is one of the recurring points, the lack of
  638. formal proofs.
  639.  
  640. > Formal proofs are hard to come by, unless you make drastic assumptions
  641. > on the statistical models and distributions operative in the Internet.
  642. > Certainly, by the same sort of analysis presented in the DTS spec, the
  643. > notion of correct UTC time (for a truechimer) belonging to the interval
  644. > defined as the offset estimate +-1/2 the delay estimate is valid, as
  645. > long as the frequency estimate is within the stated tolerance. However,
  646. > DTS and NTP differ substantially in the philosophy of the selection
  647. > algorithm, as explained in the text. Since your comments did not speak
  648. > directly to this issue and I suspect you remain unconvinced, a full
  649. > examination should await another time and place.
  650.  
  651. > For an in-depth analysis of probabilistic models appropriate for
  652. > "well-behaved" timekeeping systems, see Appendix F of the latest spec
  653. > revision mentioned previously. You still might not like the results of
  654. > the analysis, since statistical models seldom give nondeterministic
  655. > results. I think you might not argue with a conclusion that accuracy
  656. > degrades with increasing synchronization distance and dispersion, but
  657. > might argue over the function that maps these numbers into acceptable
  658. > error bounds. For justification, see [MIL90a].
  659.     
  660.    In NTP the selection algorithm determines one or a number of
  661.    synchronization candidates based on empirical rules and maximum-
  662.    likelihood techniques. A combining algorithm determines the local-clock
  663.    adjustment using a weighted-average procedure in which the weights are
  664.    determined by offset sample dispersion.
  665.  
  666. < (portion deleted)
  667.     
  668.    The next step is designed to detect falsetickers or other conditions
  669.    which might result in gross errors. The pruned and truncated candidate
  670.    list is re-sorted in the order first by stratum and then by total
  671.    synchronizing distance to the root; that is, in order of decreasing
  672.    likelihood. A similar procedure is also used in Marzullo's MM algorithm
  673.    [MAR85]. Next, each entry is inspected in turn and a weighted error
  674.    estimate computed relative to the remaining entries on the list. The
  675.    entry with maximum estimated error is discarded and the process repeats.
  676.    The procedure terminates when the estimated error of each entry
  677.    remaining on the list is less than a quantity depending on the intrinsic
  678.    precisions of the local clocks involved.
  679.  
  680. A point which is not discussed here is that when NTP chooses to prune
  681. an entry, it can not determine if this entry's problem is that it
  682. comes from a bad clock (falseticker in your jargon), or experienced
  683. unusually large and asymmetric network delays. The latter case is
  684. something to be expected in normal operation, the former represents a
  685. problem which should be fixed. DTS uses the interval information to
  686. identify such bad clocks, and reports them. Since if a clocks interval
  687. doesn't intersect the majority it is clearly faulty. This is, of course,
  688. a MAJOR issue in distributed system management.
  689.  
  690. > NTP can determine whether a peer or radio has not responded for a "long"
  691. > time or whether the problem is excessive dispersion. NTP implementations
  692. > do keep track of both and report when a peer or radio becomes selected
  693. > or deselected, reachable or unreachable and so forth. After watching peers
  694. > and radios of various manufacture continuously for several years and
  695. > experiencing what could be considered most bizarre behavior on occasion,
  696. > I have concluded there is no way to reliably distinguish a falseticker
  697. > from simple excessive delay or propagation variance on other than a
  698. > a probabilistic basis. I claim this even after admitting the fuzzball
  699. > timecode receiver drivers have an incredible array of consistency
  700. > checking and monitoring machinery which can and often does detect a
  701. > misbehaving peer or radio. I also conclude that radio design can
  702. > be vastly improved by providing detail signal-quality information in
  703. > the timecode itself. At one time the fuzzballs carefully and
  704. > exasperatingly logged and reported every little thing, like when a
  705. > peer or radio became unreachable or experienced excessive dispersion,
  706. > etc., but now these events are logged at the server and available only
  707. > if the remote monitoring program requests them. 
  708.     
  709.    The fundamental assumption upon which the DTS is founded is Marzullo's
  710.    proof that a set of M clocks synchronized by the above algorithm, where
  711.    no more than j clocks are faulty, delivers an interval including UTC.
  712.    The algorithm is simple, both to express and to implement, and involves
  713.    only one sorting step instead of two as in NTP. However, consider the
  714.    following scenario with M = 3, j = 1 and containing three intervals A, B
  715.    and C:
  716.     
  717.                     A  +--------------------------+
  718.                     B  +----+
  719.                     C                        +----+
  720.     
  721.                Result  +-----================-----+
  722.     
  723.    Using the algorithm described in the DTS functional specification, both
  724.    the lower and upper endpoints of interval A are in M-j = 2 intervals,
  725.    thus the resulting interval is coincident with A. However, there remains
  726.    the interval marked "=" which contains points not contained in at least
  727.    two other intervals. The DTS document mentions this interesting fact,
  728.    but makes a quite reasonable choice to avoid multiple intervals in favor
  729.    of a single one, even if that does in principle violate the correctness
  730.    assumptions.
  731.  
  732. Come on, this in no way violates the correctness assumption. The
  733. proofs tell us that the correct time is somewhere in the two dashed
  734. sub-intervals. By making the statement that the time is somewhere in the
  735. larger interval, a server is making a WEAKER assertion. Marzullo's proof
  736. would apply and the algorithm would work (sub-optimally) if servers
  737. arbitrarily lengthened the intervals they computed.
  738.  
  739. > Zounds, you have cut me to the quick. My conclusion was based on my
  740. > reading of the text in Section 3.3 of the DTS spec and the stated
  741. > algorithm, which seemed at first reading to me at variance with
  742. > Marzullo's principles presented in the CACM paper. In your algorithm
  743. > you arrange the endpoints in a list in order of indicated times, with
  744. > lower bounds preceding upper bounds of the same value. For M-j = 2
  745. > and the above figure, the algorithm will start at the lower limits of
  746. > A and B and work upward, then start at the upper limits of A and C and
  747. > work down. The first step will conclude the lower limit as the lower
  748. > limit of intervals A and B and the upper limit as the upper limit of
  749. > intervals A and C. Your correctness assumption uses "the smallest
  750. > single interval containing all points in at lease M-f of the intervals,
  751. > which is exactly what your algorithm computes. I can restate that by
  752. > saying you require at least one clock interval to include UTC, not that
  753. > each of the M-j = 2 clocks agrees to the same interval. As I recall,
  754. > Marzullo's paper did not consider this case, but it is a natural
  755. > extension. I conclude my claim is unfounded and it will disappear in the
  756. > rewrite.
  757.  
  758. > (portion deleted)
  759.  
  760.    In point of fact, the local clock model described in the NTP
  761.    specification is listed as optional in the same spirit as the model
  762.    described in the DTS functional description. As such, the local clock
  763.    can in principle be considered implementation specific and not part of
  764.    the formal specification.
  765.  
  766. This is a rather odd statement. What I read is that the local clock
  767. model is not explicitly required by the NTP documents, but it is, in fact,
  768. required in functioning implementations.
  769.  
  770. > The intent in the original NTP spec was to define the protocol itself,
  771. > saving the filtering, selection, combining and local-clock algorithms
  772. > for later specification exercises. As a pragmatic matter, nobody would
  773. > implement NTP unless there was some guidance for these algorithms. As
  774. > the architecture and protocol was refined, it became clear that a
  775. > well performing system of clocks could not be achieved unless
  776. > certain aspects of these algorithms were standardized, namely the
  777. > parameters of the local-clock algorithm, which is at the heart of
  778. > the stability issue. You correctly observe that the NTP spec is
  779. > confusing in this area.
  780.  
  781.                               However, as demonstrated above, frequency
  782.    compensation requires the local clock adjustment to be carefully
  783.    specified and implemented. The NTP mechanism has been carefully
  784.    analyzed, simulated, implemented and deployed in the Internet, but DTS
  785.    has not.
  786.  
  787. I have never read a clear specification of the required quality of the
  788. input time to NTP. However, the following argument shows that in a LAN
  789. of typical machines, DTS can indeed provide time to NTP. The clock
  790. resolution of most machines is between 1 and 16.7 milliseconds. Thus,
  791. any single measurements made by NTP MUST experience this clock jitter.
  792. NTP can achieve better overall results only by averaging many such
  793. measurements. We have measured the 'jitter' of DTS times in LANs, it is
  794. less than 10 milliseconds, so if DTS supplies time to NTP in a typical
  795. LAN, the NTP will receive time similar in quality to the time it gets
  796. from other NTP servers. In the WAN case, the jitter may be a problem,
  797. I assume that to interoperate in the presence of WAN links may require
  798. clock training.
  799.  
  800. If you could provide the derivation of accuracy from synchronization
  801. distance and synchronization dispersion that you allude to in section 4.2,
  802. this could form the basis of reliable interoperation with NTP supplying
  803. time to DTS. Alas, I suspect such a derivation is unachievable. However,
  804. for installations which are not concerned with the DTS guarantee, the
  805. time provider interface could be used to import NTP time into DTS (just
  806. like any time provider, though there would have to be a user supplied
  807. inaccuracy, based on local experience with NTP). We intend to include a
  808. sample time provider program to permit this.
  809.  
  810. > As I said previously, and subject to the assumptions made there, the
  811. > NTP synchronizing distance is computed similar to the DTS inaccuracy
  812. > interval. However, a derivation of estimated error interval from measured
  813. > distance and dispersion is not achievable on other than a statistical
  814. > basis, which wouldn't do you much good. However, there is a basic
  815. > flaw to your argument in achieving interoperability with NTP. The
  816. > NTP architecture involves a probabilistic system of mutually coupled
  817. > oscillators controlled by what is called in traditional control theory
  818. > a type-II phase-lock loop (PLL). A type-II loop is necessary to estimate
  819. > frequency, as well as phase. If you accept the requirement that the
  820. > subnet of distributed oscillators must operate plesiochronously
  821. > (phase-locked to possibly many reference oscillators themselves slaved,
  822. > but not phase-locked to UTC), then you are stuck with type-II loops.
  823.  
  824. > The fundamental problem with type-II loops is that they can become
  825. > unstable and sail off into the wild blue yonder if the loop time
  826. > constants are not maintained within specified tolerances. There is
  827. > much machinery in the NTP local-clock model that addresses these
  828. > issues in order to maintain stability throughout the subnet. It has
  829. > been the experience that stability can be reliably maintained over a wide
  830. > range of network delays, outages, etc.; however, the cost is a tighter
  831. > specification on the dynamic characteristics of the local-clock
  832. > algorithms. See Appendix G of the cited NTP spec revision for a
  833. > mathematical analysis of the NTP PLL. Note that RFC-1119 contains
  834. > minor errors in some of the implementation formulas.
  835.  
  836. > I would in fact be possible to "take time" from a DTS server and splice
  837. > it into NTP, in spite of the probably large phase noise; however, it
  838. > would probably not be possible to integrate a DTS subnet into an NTP
  839. > system where DTS was used for time transfer between one NTP subnet and
  840. > another.
  841.  
  842. > (portion deleted)
  843.  
  844.    It is an uncontested fact that computer systems can be badly disrupted
  845.    should apparent time appear to warp (jump) backwards, rather than always
  846.    tick forward as our universe requires. Both NTP and DTS take explicit
  847.    precautions to avoid the local clock running backwards or large warps
  848.    when running forwards. However, both NTP and DTS models recognize that
  849.    there are some extreme conditions in which it is better to warp
  850.    backwards or forwards, rather than allow the adjustment procedure to
  851.    continue for an outrageously long time. The local clock is warped if the
  852.    correction exceeds an implementation constant, +-128 milliseconds for
  853.    NTP and ten minutes for DTS. The large difference between the NTP and
  854.    DTS values is attributed to the accuracy models assumed.
  855.  
  856. I believe the difference also comes from different assumptions of the
  857. risks (and probabilistic costs) involved in jumping the clock. We assume
  858. it is something you want to do rarely.
  859.  
  860. > The NTP experience is that, with a +-128-ms window and the Internet
  861. > peers I watch, I have not observed a jump any time over the last couple
  862. > of years, except upon reboot or upon insertion of the latest leap
  863. > second, when a couple of silly implementation bugs were found. Some
  864. > users have found it necessary to upsize the window on combined
  865. > satellite/landline paths and on paths frequently experiencing severe
  866. > network congestion. In fact, we have used up to +-512 ms on some paths
  867. > to Europe and would be glad to use larger ones should that become
  868. > necessary. I think this is a non-issue with respect to comparing
  869. > the NTP and DTS models. 
  870.     
  871.    For most servers and transmission paths in the Internet a offset spike
  872.    (following filtering, selection and combining operations) over +-128
  873.    milliseconds following filtering, selection and combining operations is
  874.    so rare as to be almost negligible.
  875.  
  876. The duplicated text makes me think there is something wrong here, though
  877. frankly I don't understand what this paragraph is trying to say.
  878.  
  879. > Probably awkwardly stated, what I'm trying to say is that the combining
  880. > and local-clock algorithms have the effect of reducing apparent errors
  881. > following the clock filter by a substantial amount over the "few
  882. > tens of milliseconds" assumed by conventional wisdom. See [MIL90a].
  883.  
  884. > (portion deleted)
  885.     
  886.    The service objectives of both NTP and DTS are substantially the same:
  887.    to deliver correct, accurate, stable and reliable time throughout the
  888.    synchronization subnet. However, as demonstrated in this document, these
  889.    objectives are not all simultaneously achievable. For instance, in a
  890.    system of real clocks some may be correct according to an established
  891.    and trusted criterion (truechimers) and some may not (falsetickers).
  892.    the models used by NTP and DTS the distinction between these two groups
  893.    is made on the basis of different clustering techniques, neither of
  894.    which is statistically infallible. A succinct way of putting it might be
  895.    to say that NTP attempts to deliver the most accurate, stable and
  896.    reliable time according to statistical principles, while DTS attempts to
  897.    deliver validated time according to correctness principles, but possibly
  898.    at the expense of accuracy and stability.
  899.  
  900. I would claim you're understating DTS's goals of autoconfigurability
  901. and manageability.
  902.  
  903. > I would be glad to elevate the consciousness of this issue in the
  904. > rewrite.
  905.     
  906.    In both the NTP or DTS models the problem is to determine which subset
  907.    of possibly many clocks represents the truechimers and which do not. An
  908.    interesting observation about both NTP and DTS is that neither attempts
  909.    to assess the relative importance of misses (mislabelling a truechimer
  910.    as a falseticker) relative to false alarms (mislabelling a falseticker
  911.    as a truechimer). In signal detection analysis this is established by
  912.    the likelihood ratio, with high ratios favoring misses over false
  913.    alarms. In retrospect, it could be said that NTP assumes a somewhat
  914.    lower likelihood ratio than does DTS.
  915.  
  916. I'm not sure I understand your jargon here. The important trade off
  917. for DTS is to notify managers of broken clocks (calling a falseticker
  918. a falseticker) so that it can be fixed. Declaring a good clock bad
  919. (labeling a truechimer a falseticker) could only occur in DTS as an
  920. implementation error or as a massive multi-server failure. In either
  921. case a human will have to get involved.   
  922.  
  923. > Likelihood ratio is a tool of mathematics and estimation theory and
  924. > is frequently used in statistical signal transmission and detection.
  925. > The likelihood of an event can be computed from the probability
  926. > model and assumptions about the underlying events of that model.
  927. > For example, there are four possible outcomes of a probabilistic
  928. > hypothesis that purports to reveal the results of an experiment:
  929. > (1) you said it hit and it really hit, (2) you said it missed and it
  930. > really missed, (3) you said it hit, but it really missed and (4) you said
  931. > it missed, but it really hit. Now, a complete probabilistic analysis
  932. > would require you place weights on each of these possible outcomes,
  933. > from which you can determine the overall success of your hypothesis
  934. > construction technique. This is where the likelihood ratio comes in.
  935.  
  936.    It might be concluded from the discourse in this document that, if the
  937.    service objective is the highest accuracy and precision, then the
  938.    protocol of choice is NTP; however, if the objective is correctness,
  939.    then the protocol of choice is DTS. However, the discussion in Section
  940.    4.2 casts some doubt either on this claim, the DTS functional
  941.    specification or this investigator's interpretation of it.
  942.  
  943. I believe you are doing your position a disservice by raising this
  944. red-herring. No one has found your argument that DTS violates the
  945. assumptions of Marzullo's thesis convincing. Lamport commented that
  946. it indicates a serious misunderstanding of Marzullo's proof.
  947.  
  948. > The last sentence should be struck and tell Leslie I said "hi."
  949.  
  950.                                                               It is
  951.    certainly true that DTS is "simple" and NTP is "complex," but these are
  952.    relative terms and the complexity of NTP did not result from accident.
  953.    That even the complexity of NTP is surmountable is demonstrated by the
  954.    fact that over 2000 NTP-synchronized servers chime each other in the
  955.    Internet now.
  956.  
  957. The ever decreasing cost of time providers argues heavily for a simple
  958. solution, even though it may require more time providers. It simply isn't
  959. worth a lot of software complexity, (and maintenance cost, and management
  960. cost) to avoid spending a few dollars to buy more providers. Further,
  961. the philosophy of 'correctness' leads to certifiable implementation by
  962. independent vendors.
  963.  
  964. > I continue to believe it is not constructive to "certify correctness" in
  965. > probabilistic systems, only to exchange acceptable tolerance bounds for
  966. > acceptable error bounds. If by "time providers" you imply each is
  967. > associated with a radio clock, I do not think it likely that the
  968. > cost of a radio clock will plummet to the point that every LAN can
  969. > afford one and, even if it did, you can not trust a single radio. You
  970. > have to have more than one of them and, preferably, no common point
  971. > of failure between them.
  972.     
  973. > (portion deleted)
  974.    
  975.    The widespread deployment of NTP in the Internet seems to confirm that
  976.    distributed Internet applications can expect that reliable, synchronized
  977.    time can be maintained to within about two orders of magnitude less than
  978.    the overall roundtrip delay to the root of the synchronization subnet.
  979.    For most places in the Internet today that means overall network time
  980.    can be confidently maintained to a few tens of milliseconds [MIL90a].
  981.    While the behavior of large-scale deployment of DTS in internet
  982.    environments is unknown, it is unlikely that it can provide comparable
  983.    performance in its present form. With respect to the future refinement
  984.    of DTS, should this be considered, it is inevitable that the same
  985.    performance obstacles and implementation choices found by NTP will be
  986.    found by DTS as well.
  987.  
  988. I disagree with this final paragraph. I think that NTP and DTS both attain
  989. their very different goals. Our difference of opinion is in how important
  990. the different goals are. I accept that DTS will not keep clocks quite as
  991. tightly synchronized as NTP.  It will, however, be a product that a vendor
  992. can confidently ship to customers who are expected to install, configure
  993. and manage it themselves.
  994.  
  995. > We sure do have vastly different goals. Mine is a scientific one. I am
  996. > keenly interested in the technology of synchronizing time and frequency
  997. > to the highest degree of performance possible in the present state of
  998. > the art. I have found it useful in my own research to promote and
  999. > sustain an agenda to systematically refine NTP as an architecture,
  1000. > protocol and set of implementations and promote its establishment as
  1001. > an Internet Standard protocol. I also find it useful to promote, help
  1002. > run and mount experiments with a largish number of Internet hosts which
  1003. > now find NTP useful. I do not have a commercial agenda, nor do I have a
  1004. > particular interest in the standards process other than to hope whatever
  1005. > lessons learned in almost a decade of Internet timekeeping are documented
  1006. > and made available to the R&D community. You may have seen my message to
  1007. > the OSF in which I said the same thing and my hope that you guys, who
  1008. > well might own the standard of choice, thoughtfully consider the points
  1009. > I raise and think about how those features you think valuable in the
  1010. > long run might be anticipated now and perhaps added at some future time.
  1011.  
  1012. (remainder deleted)
  1013.  
  1014. Dave
  1015.